using System;
using System.Collections.Generic;
using System.Text;

namespace NiSis.Data
{
    /// <summary>
    /// Calcolatrice dei mesi per trovare i valori string dei mesi
    /// </summary>
    public class MonthCalculator
    {
        private string mAnno;
        /// <summary>
        /// Anno di input
        /// </summary>
        public string Anno
        {
            get { return mAnno; }
            set { mAnno = value; }
        }
        private string mMese;
        /// <summary>
        /// Mese di input
        /// </summary>
        public string Mese
        {
            get { return mMese; }
            set { mMese = value; }
        }

        /// <summary>
        /// Calcula anno e mese di input con una stringa del tipo "200801"
        /// </summary>
        /// <param name="sDate"></param>
        public void SetDate(string sDate)
        {
            mAnno = sDate.Substring(0, 4);
            mMese = sDate.Substring(4, 2);
        }
        /// <summary>
        /// Trova la stringa equivalente per mese -1
        /// </summary>
        /// <returns></returns>
        public string GetMeseM1()
        {
            string tAnno;
            if (mMese == "01")
            {
                tAnno = (int.Parse(mAnno) - 1).ToString();
                return String.Format("{0}{1}", "12", tAnno);
            }

            
            return String.Format("{0}{1}", mAnno, string.Format("{0:00}", int.Parse(mMese)-1));


        }
        /// <summary>
        /// Trova la stringa equivalente per mese -2
        /// </summary>
        /// <returns></returns>
        public string GetMeseM2()
        {
            string tAnno;
            if (mMese == "01")
            {
                tAnno = (int.Parse(mAnno) - 1).ToString();
                return String.Format("{0}{1}", "11", tAnno);
            }
            if (mMese == "02")
            {
                tAnno = (int.Parse(mAnno) - 1).ToString();
                return String.Format("{0}{1}", "12", tAnno);
            }

            
            return String.Format("{0}{1}", mAnno, string.Format("{0:00}", int.Parse(mMese)-2));

        }
        /// <summary>
        /// Trova la stringa equivalente per il mese -3
        /// </summary>
        /// <returns></returns>
        public string GetMeseM3()
        {
            string tAnno;
            if (mMese == "01")
            {
                tAnno = (int.Parse(mAnno) - 1).ToString();
                return String.Format("{0}{1}", "10", tAnno);
            }
            if (mMese == "02")
            {
                tAnno = (int.Parse(mAnno) - 1).ToString();
                return String.Format("{0}{1}", "11", tAnno);
            }
            if (mMese == "03")
            {
                tAnno = (int.Parse(mAnno) - 1).ToString();
                return String.Format("{0}{1}", "12", tAnno);
            }

            return String.Format("{0}{1}", mAnno, string.Format("{0:00}", int.Parse(mMese) - 3));

        }
	
    }
}
